Perjalanan dari sebuah struct ke sebuah Tipe Data Abstrak (ADT) adalah perubahan mendasar dalam filosofi desain. Sementara sebuah struct sering kali merupakan kumpulan variabel yang pasif, sedangkan ADT adalah entitas aktif yang mengelola statusnya sendiri melalui Enkapsulasi.
1. Tujuan Desain
Dalam C++, kata kunci class menandakan komitmen terhadap Abstraksi Data. Strategi ini memisahkan antarmuka (apa yang dapat dilakukan pengguna) dari implementasi (bagaimana data disimpan). Dengan melindungi variabel internal, programmer memastikan objek menjaga konsistensi internalnya sendiri.
2. Nuansa Teknis
Secara teknis, satu-satunya perbedaan antara sebuah struct dan sebuah class dalam C++ adalah tingkat akses default. Anggota dari sebuah struct adalah publik secara default, mencerminkan perannya sebagai penyimpan data terbuka. Anggota dari sebuah class adalah pribadi secara default, mencerminkan perannya sebagai entitas yang dikelola.
$$\text{ADT} = \text{Data} + \text{Operasi}$$